#include <iostream>
#include <vector>
#include <queue>
#include <algorithm>

using namespace std; 

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     * 计算成功举办活动需要多少名主持人
     * @param n int整型 有n个活动
     * @param startEnd int整型vector<vector<>> startEnd[i][0]用于表示第i个活动的开始时间，startEnd[i][1]表示第i个活动的结束时间
     * @return int整型
     */
    int minmumNumberOfHost(int n, vector<vector<int> >& startEnd) {
        // write code here
        sort(startEnd.begin(),startEnd.end());
        priority_queue<int,vector<int>,greater<int>> q;
        int mmax = 0;
        for(int i = 0;i < n;i++)
        {
            int start = startEnd[i][0],end = startEnd[i][1];
            while(q.size() && q.top() <= start)
            {
                q.pop();
            }
            q.push(end);
            mmax = max(mmax,(int)q.size());
        }
        return mmax;
    }
};